Within manufacturing environments, the questions of deciding what products to produce (assuming the environment is capable of producing more than a single product), when to produce them, how to produce each and whether even to accept new orders for different products must all be weighed against the realities of the various constraints imposed upon and within the environment. Workflow systems may and have been used to specify how products should be produced. In general, workflows represent procedural steps to accomplish a process (e.g., a product production process). In traditional workflow systems, different workflows are individually defined in advance, and a particular one of these predefined workflows is selected and run, according to the product being produced. Thus, in such systems one must decide whether to create only a few, inflexible workflows, or a number of different workflows. For the first scenario, although having only a few workflows may make the maintenance thereof relatively less burdensome (e.g., as compared to situations where a large number of workflows must be maintained), it also means that one will be forced to make due with workflows that are not necessarily optimized for all environmental conditions. In the second scenario, although have more workflows may allow for an optimum one to be selected, it does make the selection process more difficult and also increases the maintenance burden. The problem inherent in these approaches may be further exacerbated where the manufacturing environment undergoes not infrequent changes.